package com.ruoyi.other.controller;

import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.other.domain.EPackageTable;
import com.ruoyi.other.service.EPackageTableService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;

import static com.ruoyi.common.core.web.controller.BaseController.getDataTable;


@RestController
@RequestMapping("/packageTable")
public class EPackageTableController {
    @Autowired
    EPackageTableService ePackageTableService;


    //    这里假设是用于权限校验的注解，校验当前用户是否有执行此操作的权限   处理回去包裹统计数据的GET请求，请求路径为/parcel/Statistics
    @RequiresPermissions("other:packageTable:Statistics")
//    @RequestParam注解用于将请求参数绑定到方法的参数上，这里表示从请求中获取名为status的参数值
    @GetMapping("/Statistics")
    public int getStatistics(String Statistics) {
//        调用ePackageTableService的getStatistics方法，传入从请求中获取的统计参数值，获取并返回包裹状态的统计数量
        return ePackageTableService.getStatistics(Statistics);
    }

    //    这里假设是用于权限校验的注解，校验当前用户是否有执行此操作的权限   处理回去包裹统计数据的GET请求，请求路径为/parcel/Package
    @RequiresPermissions("other:packageTable:StatisticsPackage")
//    @RequestParam注解用于将请求参数绑定到方法的参数上，这里表示从请求中获取名为status的参数值
    @GetMapping("/StatisticsPackage")
    public int getStatistics1(String StatisticsPackage) {
//        调用ePackageTableService的getStatisticsPackage方法，传入从请求中获取的统计参数值，获取并返回包裹状态的统计数量
        return ePackageTableService.getStatisticsPackage(StatisticsPackage);
    }

    //处理获取包裹趋势图数据的请求，请求路径为/parcel/trend
    @RequiresPermissions("other:packageTable:trend")
    @GetMapping("/trend")
    public TableDataInfo trend(Integer month, Integer num) {
        // month参数表示要查询包裹列表的月份，nums参数表示其他相关的数量条件
        List<EPackageTable> trendList=ePackageTableService.selectTrendList(month,num);
        // 将获取到的数据列表转换为适合返回给前端的TableDataInfo格式并返回
        return getDataTable(trendList);
    }

    // 处理获取包裹列表数据的请求
    @RequiresPermissions("other:packageTable:packages")
    @GetMapping("/packages")
    public TableDataInfo packages(Integer month,Integer nums) {
        // month参数表示要查询趋势数据的月份，num参数表示其他相关的数量条件
        List<EPackageTable> packagesList=ePackageTableService.selectPackagesList(month,nums);
        // 将获取到的数据列表转换为适合返回给前端的TableDataInfo格式并返回
        return getDataTable(packagesList);
    }


    // 处理获取指定箱子相关包裹数量的请求
    @RequiresPermissions("other:packageTable:box")
    @GetMapping("/box")
    // box参数表示要查询的箱子标识
    public int getBoxNum(String box) {
        // 调用ePackageTableService的getBoxNum方法获取指定箱子相关的包裹数量并返回
        return ePackageTableService.getBoxNum(box);
    }

}
